"use strict"; window.Happy = window.Happy || {}; (function ($, Happy, w) { var $window = $(w); $(function () { function log(event, item, level) { $(document).on(event, item, level); } var e; e = $(".ha-menu-container"); $(e).each(function () { var button = $(this); if ("yes" != button.attr("ha-dom-added")) { if ( 0 === button.parents(".elementor-widget-ha-nav-menu").length ) { button .parents(".ha-wid-con") .addClass("ha_menu_responsive_tablet"); } button.attr("ha-dom-added", "yes"); } }); log("click", ".ha-dropdown-has > a", function (event) { if ( !$(this) .parents( ".ha-navbar-nav, .ha-vertical-navbar-nav" ) .hasClass("submenu-click-on-icon") || $(event.target).hasClass("ha-submenu-indicator-wrap") ) { console.log(event.target); event.preventDefault(); var $oElemDragged = $(this) .parent() .find( ">.ha-dropdown, >.ha-megamenu-panel" ); $oElemDragged .find(".ha-dropdown-open") .removeClass("ha-dropdown-open"); if ($oElemDragged.hasClass("ha-dropdown-open")) { $oElemDragged.removeClass("ha-dropdown-open"); } else { $oElemDragged.addClass("ha-dropdown-open"); } } }); log("click", ".ha-menu-toggler", function (event) { event.preventDefault(); var el_form_group = $(this) .parents(".ha-menu-container") .parent(); if (el_form_group.length < 1) { el_form_group = $(this).parent(); } var $wrapElement = el_form_group.find( ".ha-menu-offcanvas-elements" ); if ($wrapElement.hasClass("active")) { $wrapElement.removeClass("active"); } else { $wrapElement.addClass("active"); } }); log("click", ".ha-navbar-nav li a", function (event) { if ( !$(this).attr("href") && "ha-submenu-indicator-wrap" == event.target.className ) { var thirdItem = $(this); var lnk = thirdItem.get(0); var oldUrl = lnk.href; var sepor = oldUrl.indexOf("#"); var s = thirdItem .parents(".ha-menu-container") .hasClass("ha-nav-menu-one-page-yes"); console.log(event.target.className); if ( -1 !== sepor && oldUrl.length > 1 && s && lnk.pathname == window.location.pathname ) { console.log(event.target.className); event.preventDefault(); thirdItem .parents(".ha-wid-con") .find(".ha-menu-close") .trigger("click"); } } }); }); function debounce(func, wait, immediate) { var timeout; return function () { var context = this, args = arguments; var later = function () { timeout = null; if (!immediate) func.apply(context, args); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; } $window.on("elementor/frontend/init", function () { // Set user time in cookie var HappyLocalTimeZone = new Date() .toString() .match(/([A-Z]+[\+-][0-9]+.*)/)[1]; var ha_secure = document.location.protocol === "https:" ? "secure" : ""; document.cookie = "HappyLocalTimeZone=" + HappyLocalTimeZone + ";SameSite=Strict;" + ha_secure; var CountDown = function ($scope) { var $item = $scope.find(".ha-countdown"); var $countdown_item = $item.find(".ha-countdown-item"); var $end_action = $item.data("end-action"); var $redirect_link = $item.data("redirect-link"); var $end_action_div = $item.find(".ha-countdown-end-action"); var $editor_mode_on = $scope.hasClass( "elementor-element-edit-mode" ); $item.countdown({ end: function () { if ( ("message" === $end_action || "img" === $end_action) && $end_action_div !== undefined ) { $countdown_item.css("display", "none"); $end_action_div.css("display", "block"); } else if ( "url" === $end_action && $redirect_link !== undefined && $editor_mode_on !== true ) { window.location.replace($redirect_link); } }, }); }; var haSwiper; var SliderBase = elementorModules.frontend.handlers.Base.extend({ onInit: function () { elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments); this.run(); }, getDefaultSettings: function () { return { selectors: { container: '.ha-slider-container' }, } }, getDefaultElements: function () { var selectors = this.getSettings('selectors'); return { $container: this.$element.find(selectors.container) }; }, // onElementChange: function () { // haSwiper.destroy(true, true); // this.run(); // }, getReadySettings: function () { if (this.getElementSettings('thumbs_navigation') == 'yes') { var selectorThumbs = this.elements.$container.find('.ha-slider-gallery-thumbs'); var haGallaryThumbs = new Swiper(selectorThumbs[0], { spaceBetween: this.getElementSettings('space_between_thumbs'), // slidesPerView: this.getElementSettings('thumbs_per_view'), // loop: this.getElementSettings('infinity_loop'), freeMode: true, watchSlidesVisibility: true, watchSlidesProgress: true, }); } var settings = { direction: this.getElementSettings('slider_direction'), spaceBetween: parseInt(this.getElementSettings('space_between_slides')) || 0, loop: this.getElementSettings('infinity_loop'), speed: parseInt(this.getElementSettings('effect_speed')), effect: (this.getElementSettings('slider_type') == 'multiple') ? this.getElementSettings('effect_multiple') : this.getElementSettings('effect'), ha_animation: this.getElementSettings('slider_content_animation'), sliderType: this.getElementSettings('slider_type'), }; if (this.getElementSettings('effect') == 'flip') { settings.flipEffect = { limitRotation: true, slideShadows: true, }; } if (this.getElementSettings('effect') == 'cube') { settings.cubeEffect = { shadow: true, slideShadows: true, shadowOffset: 20, shadowScale: 0.94, }; } if (this.getElementSettings('effect_multiple') == 'coverflow') { settings.coverflowEffect = { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: true, }; } if (this.getElementSettings('slider_type') == 'multiple') { settings.slidesPerView = parseInt(this.getElementSettings('slides_per_view')) || 1; settings.breakpoints = { // when window width is >= 320px 320: { slidesPerView: parseInt(this.getElementSettings('slides_per_view_mobile')) || parseInt(this.getElementSettings('slides_per_view_tablet')) || settings.slidesPerView, spaceBetween: parseInt(this.getElementSettings('space_between_slides_mobile')) || 0, }, // when window width is >= 480px 361: { slidesPerView: parseInt(this.getElementSettings('slides_per_view_tablet')) || settings.slidesPerView, spaceBetween: parseInt(this.getElementSettings('space_between_slides_tablet')) || 0, }, // when window width is >= 640px 769: { slidesPerView: settings.slidesPerView, spaceBetween: settings.spaceBetween, } } } if (this.getElementSettings('autoplay') == 'yes') { settings.autoplay = { delay: this.getElementSettings('autoplay_speed'), disableOnInteraction: false, stopOnLastSlide: !(this.getElementSettings('infinity_loop') || false), }; } if (this.getElementSettings('arrow_navigation') == 'yes') { var selectorNext = this.elements.$container.find('.ha-slider-next'); var selectorPrev = this.elements.$container.find('.ha-slider-prev'); settings.navigation = { nextEl: selectorNext[0], prevEl: selectorPrev[0], }; } if (this.getElementSettings('pagination_type') == 'dots') { var selectorPagi = this.elements.$container.find('.ha-slider-pagination'); settings.pagination = { el: selectorPagi[0], clickable: true, }; } if (this.getElementSettings('pagination_type') == 'progressbar') { var selectorPagi = this.elements.$container.find('.ha-slider-pagination'); settings.pagination = { el: selectorPagi[0], clickable: true, type: 'progressbar' }; } if (this.getElementSettings('pagination_type') == 'numbers') { var selectorPagi = this.elements.$container.find('.ha-slider-pagination'); settings.pagination = { el: selectorPagi[0], clickable: true, type: this.getElementSettings('number_pagination_type'), renderBullet: function (index, className) { return '' + (index + 1) + ''; }, renderFraction: function (currentClass, totalClass) { return '' + '/' + ''; } }; } if (this.getElementSettings('scroll_bar') == 'yes') { var selectorScroll = this.elements.$container.find('.ha-slider-scrollbar'); settings.scrollbar = { el: selectorScroll[0], hide: (this.getElementSettings('scroll_bar_visibility') == 'true') ? true : false, draggable: true, }; } if (this.getElementSettings('thumbs_navigation') == 'yes') { settings.thumbs = { swiper: haGallaryThumbs, }; } return $.extend({}, settings); }, run: function () { var elContainer = this.elements.$container; var slider = elContainer.find('.ha-slider-container'); var readySettings = this.getReadySettings(); haSwiper = new Swiper(slider[0], readySettings); console.log(readySettings); haSwiper.on('slideChange', function () { if (readySettings.ha_animation == 'none' || readySettings.sliderType == 'multiple') { return; } var aI = haSwiper.activeIndex; var elContent = elContainer.find('.ha-slider-content'); var currentEl = elContent.eq(aI); currentEl.hide(); setTimeout(function () { currentEl.show(); }, readySettings.speed); }); } }); var CarouselBase = elementorModules.frontend.handlers.Base.extend({ onInit: function () { elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments ); this.run(); }, getDefaultSettings: function () { return { selectors: { container: ".ha-carousel-container", }, arrows: false, dots: false, checkVisible: false, infinite: true, slidesToShow: 3, rows: 0, prevArrow: '', nextArrow: '', }; }, getDefaultElements: function () { var selectors = this.getSettings("selectors"); return { $container: this.findElement(selectors.container), }; }, onElementChange: function () { this.elements.$container.slick("unslick"); this.run(); }, getReadySettings: function () { var settings = { infinite: !!this.getElementSettings("loop"), autoplay: !!this.getElementSettings("autoplay"), autoplaySpeed: this.getElementSettings("autoplay_speed"), speed: this.getElementSettings("animation_speed"), centerMode: !!this.getElementSettings("center"), vertical: !!this.getElementSettings("vertical"), slidesToScroll: 1, }; switch (this.getElementSettings("navigation")) { case "arrow": settings.arrows = true; break; case "dots": settings.dots = true; break; case "both": settings.arrows = true; settings.dots = true; break; } settings.slidesToShow = parseInt(this.getElementSettings("slides_to_show")) || 1; settings.responsive = [ { breakpoint: elementorFrontend.config.breakpoints.lg, settings: { slidesToShow: parseInt( this.getElementSettings( "slides_to_show_tablet" ) ) || settings.slidesToShow, }, }, { breakpoint: elementorFrontend.config.breakpoints.md, settings: { slidesToShow: parseInt( this.getElementSettings( "slides_to_show_mobile" ) ) || parseInt( this.getElementSettings( "slides_to_show_tablet" ) ) || settings.slidesToShow, }, }, ]; return $.extend({}, this.getSettings(), settings); }, run: function () { this.elements.$container.slick(this.getReadySettings()); }, }); // Source Code var SourceCode = function ($scope) { var $item = $scope.find('.ha-source-code'); var $lng_type = $item.data('lng-type'); var $after_copy_text = $item.data('after-copy'); var $code = $item.find('code.language-' + $lng_type); var $copy_btn = $scope.find('.ha-copy-code-button'); $copy_btn.on('click', function () { var $temp = $("